package com.charging.business.vo;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import org.springframework.stereotype.Component;

/**
 * @author JerryLu
 * @date 2024/8/26 15:03
 * @description 入口计费响应参数类
 */
@Data
@Component
public class FeeEnCalcResponse {
    /**
     * 通知消息号
     * 收到的请求消息号
     */
    @JSONField(ordinal = 0)
    public String msgId = "";

    /**
     * 响应码 0-成功 其他-失败
     */
    @JSONField(ordinal = 1)
    public Integer code = 0;

    /**
     * 响应描述信息
     * 描述信息
     */
    @JSONField(ordinal = 2)
    public String codeInfo = "";

    /**
     * 接收时间
     * "yyyy-MM-ddThh:mm:ss"
     */
    @JSONField(ordinal = 3)
    public String receiveTime = "";

    /**
     * 应收金额
     * 单位：分
     */
    @JSONField(ordinal = 4)
    public Integer payFee = 0;

    /**
     * 优惠金额
     * 单位：分
     */
    @JSONField(ordinal = 5)
    public Integer discountFee = 0;

    /**
     * 实收金额
     * 单位：分
     */
    @JSONField(ordinal = 6)
    public Integer realFee = 0;

    /**
     * 本省累计实收金额
     * 单位：分
     */
    @JSONField(ordinal = 7)
    public Integer feeProvSumLocal = 0;

    /**
     * 计费特情组合
     * 多种特情时，以“ | ”分隔
     */
    @JSONField(ordinal = 8)
    public String feeCalcSpecials = "";

    /**
     * 拟合结果
     * 本门架拟合结果 0-未拟合或拟合成功  1-拟合失败
     */
    @JSONField(ordinal = 9)
    public Integer pathFitFlag = 0;

    /**
     * 收费单元编号+处理标识
     * 收费单元编号，若有代收用“|” 间隔
     */
    @JSONField(ordinal = 10)
    public String tollIntervalIDs = "";

    /**
     * 应收金额组合
     */
    @JSONField(ordinal = 11)
    public String payFeeGroup = "";

    /**
     * 优惠金额组合
     */
    @JSONField(ordinal = 12)
    public String discountFeeGroup = "";

    /**
     * 实收金额组合
     */
    @JSONField(ordinal = 13)
    public String feeGroup = "";

    /**
     * 计费信息1
     */
    @JSONField(ordinal = 14)
    public String feeInfo1 = "";

    /**
     * 计费信息2
     */
    @JSONField(ordinal = 15)
    public String feeInfo2 = "";

    /**
     * 计费信息3
     */
    @JSONField(ordinal = 16)
    public String feeInfo3 = "";

    /**
     * 日志
     */
    @JSONField(ordinal = 17)
    public String feeLogMsg = "";

    /**
     * 计费模块实际使用的车型
     */
    @JSONField(ordinal = 18)
    public Integer feeVehicleType = 0;

    /**
     * 计费里程
     */
    @JSONField(ordinal = 19)
    public Integer feeMileage = 0;

    /**
     * 省内最小费额
     */
    @JSONField(ordinal = 20)
    public String provMinFee = "";

    /**
     * 是否拟合的标识
     * CPC卡是否进行全省路径拟合的标识   0-未拟合   大于0的值省内自行定义拟合方式
     */
    @JSONField(ordinal = 21)
    public Integer fitProvFlag = 0;

    /**
     * 过站信息中的门架数量
     */
    @JSONField(ordinal = 22)
    public Integer gantryPassNumFit = 0;

    /**
     * 拟合后的过站信息
     */
    @JSONField(ordinal = 23)
    public String gantryPassHexFit = "";

    /**
     * 当前定义为本省累计应收金额
     */
    @JSONField(ordinal = 24)
    public Integer feeSpare1 = 0;

    /**
     * 当前定义为本省累计计费 里程
     */
    @JSONField(ordinal = 25)
    public Integer feeSpare2 = 0;

    /**
     * 保留字段
     */
    @JSONField(ordinal = 26)
    public String feeSpare3 = "";

    /**
     * 计费模块和计费参数版本号
     * 不超过40个字符。计费模块版本号与计费参数版本号使用“|”分隔
     */
    @JSONField(ordinal = 27)
    public String rateVersion = "";

    /**
     * 最小费额费率版本号
     * 不超过40个字符
     */
    @JSONField(ordinal = 28)
    public String spcRateVersion = "";

    /**
     * 计费耗时
     */
    @JSONField(ordinal = 29)
    public Integer calCostTime = 0;
}
